all: run clean

clean:
	(cd ./01_adapters/uvm_on_top/channel2tlm; gmake clean)
	(cd ./01_adapters/uvm_on_top/sequencer2channel; gmake clean)
	(cd ./01_adapters/uvm_on_top/channel2driver; gmake clean)
	(cd ./01_adapters/uvm_on_top/analysis_channel; gmake clean)
	(cd ./01_adapters/uvm_on_top/analysis2notify; gmake clean)
	(cd ./01_adapters/uvm_on_top/notify2analysis; gmake clean)
	(cd ./01_adapters/uvm_on_top/tlm2channel; gmake clean)
	(cd ./01_adapters/uvm_on_top/tlm2channel_passive_producer; gmake clean)
	(cd ./01_adapters/uvm_on_top/tlm2channel_blocking_transport; gmake clean)
	(cd ./01_adapters/uvm_on_top/uvm_analysis2vmm_notify; gmake clean)
	(cd ./01_adapters/vmm_on_top/vmm_channel2uvm_port; gmake clean)
	(cd ./01_adapters/vmm_on_top/uvm_port2vmm_channel; gmake clean)
	(cd ./01_adapters/vmm_on_top/vmm_notify2uvm_analysis; gmake clean)
	(cd ./02_integration/uvm_on_top/IP_integration; gmake clean)
	(cd ./02_integration/uvm_on_top/mixed_hierarchy; gmake clean)
	(cd ./02_integration/vmm_on_top/IP_integration; gmake clean)
	(cd ./02_integration/vmm_on_top/env_step_by_step; gmake clean)

run:
	(cd ./01_adapters/uvm_on_top/channel2tlm; gmake )
	(cd ./01_adapters/uvm_on_top/sequencer2channel; gmake )
	(cd ./01_adapters/uvm_on_top/channel2driver; gmake )
	(cd ./01_adapters/uvm_on_top/analysis_channel; gmake )
	(cd ./01_adapters/uvm_on_top/analysis2notify; gmake )
	(cd ./01_adapters/uvm_on_top/notify2analysis; gmake )
	(cd ./01_adapters/uvm_on_top/tlm2channel; gmake )
	(cd ./01_adapters/uvm_on_top/tlm2channel_passive_producer; gmake )
	(cd ./01_adapters/uvm_on_top/tlm2channel_blocking_transport; gmake )
	(cd ./01_adapters/uvm_on_top/uvm_analysis2vmm_notify; gmake)
	(cd ./01_adapters/vmm_on_top/vmm_channel2uvm_port; gmake )
	(cd ./01_adapters/vmm_on_top/uvm_port2vmm_channel; gmake )
	(cd ./01_adapters/vmm_on_top/vmm_notify2uvm_analysis; gmake )
	(cd ./02_integration/uvm_on_top/IP_integration; gmake )
	(cd ./02_integration/uvm_on_top/mixed_hierarchy; gmake )
	(cd ./02_integration/vmm_on_top/IP_integration; gmake )
	(cd ./02_integration/vmm_on_top/env_step_by_step; gmake )

scripts:
	(cd ./01_adapters/uvm_on_top/channel2tlm; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/uvm_on_top/sequencer2channel; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/uvm_on_top/channel2driver; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/uvm_on_top/analysis_channel; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/uvm_on_top/analysis2notify; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/uvm_on_top/notify2analysis; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/uvm_on_top/tlm2channel; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/uvm_on_top/tlm2channel_passive_producer; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/uvm_on_top/tlm2channel_blocking_transport; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/uvm_on_top/uvm_analysis2vmm_notify; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/vmm_on_top/vmm_channel2uvm_port; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/vmm_on_top/uvm_port2vmm_channel; comp.csh ; run.csh; clean.csh)
	(cd ./01_adapters/vmm_on_top/vmm_notify2uvm_analysis; comp.csh ; run.csh; clean.csh)
	(cd ./02_integration/uvm_on_top/IP_integration; comp.csh ; run.csh; clean.csh)
	(cd ./02_integration/uvm_on_top/mixed_hierarchy; comp.csh ; run.csh; clean.csh)
	(cd ./02_integration/vmm_on_top/IP_integration; comp.csh ; run.csh; clean.csh)
	(cd ./02_integration/vmm_on_top/env_step_by_step; comp.csh ; run.csh; clean.csh)
